package zb.WX.service.userManage;


import zb.WX.util.AccessTokenSaveUtil;
import zb.WX.util.GlobalVar;
import zb.WX.util.HttpsUtil;

/**
 * 获取关注着列表
 *
 * @author Administrator
 * 1、公众号可通过本接口来获取帐号的关注者列表，关注者列表由一串OpenID（加密后的微信号，
 * 每个用户对每个公众号的OpenID是唯一的）组成。
 * 一次拉取调用最多拉取10000个关注者的OpenID，可以通过多次拉取的方式来满足需求。
 * <p>
 * 2、当公众号关注者数量超过10000时，可通过填写next_openid的值，从而多次拉取列表的方式来满足需求。
 * 具体而言，就是在调用接口时，将上一次调用得到的返回中的next_openid值，作为下一次调用中的next_openid值。
 */
public class GetUserList {
    //获取关注者列表
    public String getUserList() {
        String access_token = AccessTokenSaveUtil.getLocationAccesstonken();
        String urlStr = GlobalVar.GET_USER_LIST.replace("ACCESS_TOKEN", access_token);

        String result = HttpsUtil.getHttpsToJson(urlStr, null);
        System.out.println("拉取用户列表结果：" + result);

        return result;
    }

    /*
     * 分批次查询关注着openId：
     * 1.当关注着超过10000人时，需要试用next_openid拉取用户openId列表
     * 2.查询出来的数据不包括串进去的openId
     */
    public String getUserListNext(String nextOpenId) {
        String access_token = AccessTokenSaveUtil.getLocationAccesstonken();
        String urlStr = GlobalVar.GET_USER_LIST_NEXT.replace("ACCESS_TOKEN", access_token).replace("NEXT_OPENID", nextOpenId);

        String result = HttpsUtil.getHttpsToJson(urlStr, null);
        System.out.println("拉取用户列表结果：" + result);

        return result;
    }


    public static void main(String[] args) {
        //String result = new GetUserList().getUserList();
        new GetUserList().getUserListNext("oHvUE1nspMtvAfYoLQ0NjyP61dTE");
    }
}
